﻿שימוש בתחביר תצוגה נוסף
=================================

Yii מאפשרת למפתחים להשתמש בתחביר התצוגה המועדף עליהם (לדוגמא Prado, Smarty וכדומה) בכדי לכתוב את קבצי התצוגה של הקונטרולר או הוידג'ט. זה נעשה על ידי כתיבת והתקנת רכיב אפליקציה [viewRenderer|CWebApplication::viewRenderer]. מעבד התצוגה (הרנדרר) מיירט את הקריאות של  [CBaseController::renderFile], מקמפל את קובץ התצוגה עם תחביר תצוגה מותאם אישית, ומציג (מרנדרר) את התוצאה המקומפלת.

» Info|מידע: מומלץ להשתמש בתחביר תצוגה מותאם אישית רק כאשר כותבים קבצי תצוגה שסביר להניח שלא יעשה בהם שימוש חוזר. אחרת, משתמשים אשר משתמשים בקבצי התצוגה יהיו מוכרחים לעבוד עם אותו תחביר תצוגה באפליקציות שלהם.

בחלק הבא, אנו מציגים כיצד להשתמש [CPradoViewRenderer], מעבד תצוגה (רנדרר) אשר מאפשר למפתחים להשתמש בתחביר תצוגה הדומה לזה שנמצא ב ‎[Prado](http://www.pradosoft.com/). עבור מפתחים הרוצים לכתוב את מעבד התצוגה שלהם, ניתן להשתמש  ב [CPradoViewRenderer] כמחלקת עזר.

שימש ב `CPradoViewRenderer`
--------------------------

בכדי להשתמש ב [CPradoViewRenderer], אנו צריכים להגדיר את האפליקציה בצורה הבאה:

~~~
[php]
return array(
    'components'=»array(
        ......,
        'viewRenderer'=»array(
            'class'=»'CPradoViewRenderer',
        ),
    ),
);
~~~

כברירת מחדל, [CPradoViewRenderer] מקמפל את קוד המקור של קבצי התצוגה ושומר את תוצאת הקימפול בקובץ PHP תחת התיקיה [הזמנית](/doc/guide/basics.convention#directory).
רק כאשר קובץ המקור של התצוגה משתנה, קבצי ה PHP  השמורים בתיקיה הזמנית יווצרו מחדש. לכן, שימוש ב [CPradoViewRenderer] כמעט ולא משפיע לרעה על ביצועי המערכת.

» Tip|טיפ: למרות ש [CPradoViewRenderer] מציג בעיקר תגיות תחביר חדשות עבור קבצי התצוגה בכדי לפשט ולזרז את כתיבתם, ניתן עדיין להשתמש בקוד PHP בתוך קבצי התצוגה כפי שבדרך כלל נעשה.

בחלק הבא, אנו נציג את התגיות החדשות הנתמכות על ידי [CPradoViewRenderer].

### תגיות PHP קצרות

תגיות PHP קצרות הם קיצורי דרך לכתיבת ביטויים ב PHP  בתוך קבצי התצוגה. התגית


~~~
«%= expression %»

~~~

 מתורגמת ל


~~~

«?php echo expression ?»

~~~


 בזמן שהתגית


~~~

«% statement %»

~~~


 מתורגמת ל

~~~

«?php statement ?»
~~~


 לדוגמא,

~~~
[php]
«%= CHtml::textField($name,'value'); %»
«% foreach($models as $model): %»
~~~

מתורגם לקוד ה PHP הבא

~~~
[php]
«?php echo CHtml::textField($name,'value'); ?»
«?php foreach($models as $model): ?»
~~~

### תגיות רכיבים

תגיות רכיבים נועדו לשימוש בעיקר בכדי להכניס [וידג'ט](/doc/guide/basics.view#widget) לקובץ התצוגה. תגית זו משתמשת בתחביר הבא:

~~~
[php]
«com:WidgetClass property1=value1 property2=value2 ...»
    // תוכן עבור הוידג'ט
«/com:WidgetClass»

// וידג'ט ללא תוכן
«com:WidgetClass property1=value1 property2=value2 .../»
~~~

כש `WidgetClass` מייצגת את שם המחלקה של הוידג'ט או [הנתיב המקוצר אליה](/doc/guide/basics.namespace), והערכים ההתחלתיים של מאפייני המחלקה יכולים להיות עטופים במרכאות או ביטויים ב PHP אשר עטופים ב סוגריים מסולסלות. לדוגמא,

~~~
[php]
«com:CCaptcha captchaAction="captcha" showRefreshButton={false} /»
~~~

יתורגם לקוד ה PHP הבא

~~~
[php]
«?php $this-»widget('CCaptcha', array(
    'captchaAction'=»'captcha',
    'showRefreshButton'=»false)); ?»
~~~

» Note|הערה: הערך עבור ה מוגדר כ `{false}` במקום `"false"` מאחר והשני מעיד על סטרינג במקום ערך בוליאני.

### תגיות מטמון

תגיות מטמון הם קיצור לשימוש [במטמון בחלקים](/doc/guide/caching.fragment). התחביר שלו הוא כמו בדוגמא הבאה,

~~~
[php]
«cache:fragmentID property1=value1 property2=value2 ...»
    // content being cached
«/cache:fragmentID »
~~~

כש `fragmentID` צריך להיות המזהה היחודי של המטמון שמזהה יחודית את התוכן הנשמר במטמון, וזוגות המאפיינים אחריו נועדו להגדרת המאפיינים ההתחלתיים של המטמון. לדוגמא,

~~~
[php]
«cache:profile duration={3600}»
    // פרופיל משתמש כאן
«/cache:profile »
~~~

יתורגם לקוד ה PHP הבא

~~~
[php]
«?php if($this-»cache('profile', array('duration'=»3600))): ?»
    // פרופיל משתמש כאן
«?php $this-»endCache(); endif; ?»
~~~

### תגיות קליפ

כמו בתגיות המטמון, תגיות קליפ הינם קיצור דרך לקריאה של [CBaseController::beginClip] ו [CBaseController::endClip] בקובץ תצוגה. התחביר שלהם הוא כפי שמוצג בדוגמא הבאה,

~~~
[php]
«clip:clipID»
    // תוכן הקליפ
«/clip:clipID »
~~~

כש `clipID` הוא מזהה יחודי עבור תוכן הקליפ. תגיות הקליפ יתורגמו לקוד ה PHP הבא

~~~
[php]
«?php $this-»beginClip('clipID'); ?»
    // תוכן הקליפ
«?php $this-»endClip(); ?»
~~~

### תגיות הערות

תגיות הערות נועדו לכתיבת הערות בתצוגה שיש להציג אותם רק למפתחים. תגיות הערות אלו יוסרו כשקובץ התצוגה יוצג למשתמשי הקצה. התחביר עבור תגיות הערות הוא כבדוגמא הבאה,

~~~
[php]
«!---
הערות שלא יוצגו למשתמשי הקצה
---»
~~~

ערבוב פורמט תבניות
-----------------------

החל מגרסא 1.1.2, ניתן לערבב שימוש של כמה תחבירי תבניות עם תחביר PHP רגיל. בכדי לעשות זאת, המאפיין [CViewRenderer::fileExtension] של מעבד התבניות המותקן כרגע צריך להיות מוגדר עם ערך השונה מ `php.`. לדוגמא, אם המאפיין מוגדר לערך `tpl.`, אז כל קובץ תצוגה המסתיים ב `tpl.` יועבד ויוצג בעזרת מעבד התבניות המותקן, בזמן שכל שאר קבצי התצוגה המסתיימים עם `php.` יקבלו יחס של קבצי PHP רגילים.

«div class="revision"»$Id: topics.prado.txt 1983 2010-03-31 19:46:37Z qiang.xue $«/div»